The present invention relates, in general, to communication of information between software processes, and more particularly to efficient interprocess communication which is largely independent of the operating system used.
The prior art includes a variety of interprocess communication methods. The most common method is to allow two or more processes to utilize the same physical area of a magnetic surface to store and retrieve information. Another common method requires communicating processes to send information grouped a few bytes at a time to an operating system controlled area of random access memory, typically called a pipe or stream. The receiving process then reads data from this area in the same groups of a few bytes of information at a time.
A method typical of the prior art is the "Method of Interprocess Communication in a Distributed Data Processing System" (U.S. Pat. No. 4,694,396 which issued to B. Weisshaar et al on Sep. 15, 1987). This method defines a proprietary operating system which allows processes running on a computer to efficiently pass variable sized messages between each other. Moreover, processes running on other computers using this same operating system may communicate messages, so long as the two computers are connected by some type of network. This method of achieving interprocess communication is designed to be part of an operating system which controls and allocates all system resources. As a result, this method relies heavily on a close interaction with the operating system for its basic functions such as queue management and hence is only useable in conjunction with that operating system. This greatly restricts the capability to integrate process communication between computers using different operating systems or to move an application program which uses communicating processes onto a different system. In applications such as electronic mail this restriction can be a major limitation to the usefulness of the application.
There is a considerable need to provide an efficient interprocess communication method for processes on a distributed computer system. The computer system may be a single piece of hardware with appropriate operating system software or may be made up from several different pieces of hardware using the same or different operating systems connected together by a network. The method must allow processes to quickly communicate variable sized messages between themselves and allow software systems using this method to be ported to other hardware devices and operating systems.